/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ig.export.loader;

import ig.export.to.ParametroTO;
import java.util.ArrayList;
import java.util.List;
import org.w3c.dom.Node;

/**
 *
 * @author usuario
 */
class ParametrosLoader extends AbstractLoader {

    public static final String PARAMETER = "parameter";
    public static final String CLASS = "class";
    public static final String PARAMETERDESCRIPTION = "parameterDescription";
    public static final String DEFAULTVALUEEXPRESSION = "defaultValueExpression";
    public static final String NAME = "name";

    public ParametrosLoader(Node node) {
        super(node);
    }

    public Object loadStructure() {
        List<ParametroTO> parametroTOs = new ArrayList<ParametroTO>();
        List<Node> nodes = getChilds(PARAMETER);
        for (Node parameter : nodes) {
            ParametroTO parametroTO = new ParametroTO();
            parametroTO.setNombre(getAttribute(parameter, NAME));
            parametroTO.setTipo(getAttribute(parameter, CLASS));
            
            Node pameterDescriptionNode = getChild(parameter, PARAMETERDESCRIPTION);
            parametroTO.setEtiqueta("");
            if ( pameterDescriptionNode!=null && !getChildrenCDATA(pameterDescriptionNode).isEmpty()){
                parametroTO.setEtiqueta( getChildrenCDATA(pameterDescriptionNode).get(0).getNodeValue().trim() );    
            }
            
            Node defaultValueNode = getChild(parameter, DEFAULTVALUEEXPRESSION);
            parametroTO.setValorPorDefecto("");    
            if ( defaultValueNode!=null && !getChildrenCDATA(defaultValueNode).isEmpty()){
                parametroTO.setValorPorDefecto( getChildrenCDATA(defaultValueNode).get(0).getNodeValue().trim().replace("\"", "") );    
            }
            parametroTOs.add(parametroTO);
        }
        return parametroTOs;
    }
}
